/*Diego Lima de Freitas RA: 317632
 *Yuri Souza Padua RA: 317420
 * 
 * Classe que trata As subrotinas do programa
 */
package AST;

abstract public class Subroutine {

    
    protected String name;
    protected LocalVarList localVarList;
    protected CompositeCommand compositeCommand;
    protected ParamList paramList;
    protected Type returnType;

    abstract public void genC(PW pw);

    public String getName() {
        return name;
    }

    public void setParamList(ParamList paramList) {
        this.paramList = paramList;
    }

    public ParamList getParamList() {
        return paramList;
    }

    public void setLocalVarList(LocalVarList localVarList) {
        this.localVarList = localVarList;
    }

    public void setCompositeStatement(CompositeCommand compositeStatement) {
        this.compositeCommand = compositeStatement;
    }

    public Type getReturnType() {
        return returnType;
    }
}
